package entities;

import java.io.Serializable;
import javax.persistence.*;

import util.DynamicObjectHandler;
import business.dto.CandidatoDTO;
import business.dto.GestioneCandidatoDTO;

import java.util.Date;


/**
 * The persistent class for the gestione_candidato database table.
 * 
 */
@Entity
@Table(name="gestione_candidato")
public class GestioneCandidatoEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(unique=true, nullable=false)
	private Integer id;

    @Lob()
	@Column(name="cliente_finale", nullable=true)
	private String clienteFinale;

    @Lob()
	@Column(nullable=true)
	private String costo;

    @Temporal( TemporalType.DATE)
	@Column(name="data_colloquio", nullable=true)
	private Date dataColloquio;

    @Lob()
	@Column(name="giorni_preavviso", nullable=true)
	private String giorniPreavviso;

    @Temporal( TemporalType.DATE)
	@Column(name="scadenza_contratto", nullable=true)
	private Date scadenzaContratto;

    @Lob()
	@Column(name="scheda_candidato", nullable=true)
	private String schedaCandidato;

    @Lob()
	@Column(name="scheda_cliente", nullable=true)
	private String schedaCliente;

	//bi-directional one-to-one association to TestDbCandidato
	@OneToOne
	@JoinColumn(name="id", nullable=false, insertable=true, updatable=true)
	private GestioneCandidatoEntity gestioneCandidatoEntity;

    public GestioneCandidatoEntity() {
    }

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getClienteFinale() {
		return this.clienteFinale;
	}

	public void setClienteFinale(String clienteFinale) {
		this.clienteFinale = clienteFinale;
	}

	public String getCosto() {
		return this.costo;
	}

	public void setCosto(String costo) {
		this.costo = costo;
	}

	public Date getDataColloquio() {
		return this.dataColloquio;
	}

	public void setDataColloquio(Date dataColloquio) {
		this.dataColloquio = dataColloquio;
	}

	public String getGiorniPreavviso() {
		return this.giorniPreavviso;
	}

	public void setGiorniPreavviso(String giorniPreavviso) {
		this.giorniPreavviso = giorniPreavviso;
	}

	public Date getScadenzaContratto() {
		return this.scadenzaContratto;
	}

	public void setScadenzaContratto(Date scadenzaContratto) {
		this.scadenzaContratto = scadenzaContratto;
	}

	public String getSchedaCandidato() {
		return this.schedaCandidato;
	}

	public void setSchedaCandidato(String schedaCandidato) {
		this.schedaCandidato = schedaCandidato;
	}

	public String getSchedaCliente() {
		return this.schedaCliente;
	}

	public void setSchedaCliente(String schedaCliente) {
		this.schedaCliente = schedaCliente;
	}

	public GestioneCandidatoEntity getTestDbCandidato() {
		return this.gestioneCandidatoEntity;
	}

	public void setTestDbCandidato(GestioneCandidatoEntity gestioneCandidatoEntity) {
		this.gestioneCandidatoEntity = gestioneCandidatoEntity;
	}
	
	public GestioneCandidatoDTO getDTO(){
	
			
			DynamicObjectHandler doh=new DynamicObjectHandler();
			GestioneCandidatoDTO gcDTO=new GestioneCandidatoDTO();
			
			try {
				doh.fill(gcDTO,this);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				
			}
			
			
			return gcDTO;
		}
}